<?

class gerarHtml{
	private $cBanco;
	//gerar codigos que devem ser chamados qdo dados da tela de insert forem salvos
	public function gerarAcaoSalvarDadosInsert($tableName, $campos){
		$conteudo = "<?\n\n";
		$tab = $tableName;
		$conteudo.=" include(\"$tableName"."Controle.php\");\n";
		$conteudo.=" include(\"$tableName"."Bean.php\");\n";
		$conteudo.=" if (isset(\$_POST[\"$campos[1]\"])){\n\n";
		$conteudo.=" \t$$tableName = new $tab();\n";
		for ($cont = 0; $cont < sizeof($campos); $cont++){
			$conteudo.="\t\$".$tableName."->set".ucfirst($campos[$cont])."(\$_POST[\"".$campos[$cont]."\"]);\n";
		}
		$controle = "controle";
		$conteudo.="\t$$controle = new $tab"."Controle($$tableName);\n";
		$conteudo.="\t\$".$controle."->adicionar($$tableName)\n";
		
		$conteudo.="}\n";		
		$conteudo.="?>\n";		
		return $conteudo; 
	}

	//gerar codigo que deve ser chamado qdo dados da tela de alteracao forem salvos. 
	public function gerarAcaoSalvarDadosAlterar($tableName, $campos){
		$conteudo = "<?\n\n";
		$tab = $tableName;
		$conteudo.=" include(\"$tableName"."Controle.php\");\n";
		$conteudo.=" include(\"$tableName"."Bean.php\");\n";
		$conteudo.=" if (isset(\$_POST[\"$campos[1]\"])){\n\n";
		$conteudo.=" \t$$tableName = new $tab();\n";
		for ($cont = 0; $cont < sizeof($campos); $cont++){
			$conteudo.="\t\$$tableName-> set".ucfirst($campos[$cont])."(\$_POST[\"$campos[$cont]\"]);\n";
		}
		$controle = "controle";
			
		$conteudo.="\t$$controle = new $tab"."Controle($$tableName);\n";
		$conteudo.="\t\$".$controle."->alterar($$tableName);\n";
		$conteudo.="}\n";		
		$conteudo.="?>\n";		
		return $conteudo;
			
	}

	//gerar codigo responsavel por excluir os dados da tabela. 
	public function gerarAcaoSalvarDadosExcluir($tableName, $campos){
		$conteudo = "<?\n\n";
		$tab = $tableName;
		$conteudo.=" include(\"$tableName"."Controle.php\");\n";
		$conteudo.=" include(\"$tableName"."Bean.php\");\n";
		$conteudo.=" if (isset(\$_POST[\"$campos[1]\"])){\n\n";
		$conteudo.=" \t$$tableName = new $tab();\n";
		for ($cont = 0; $cont < sizeof($campos); $cont++){
			$conteudo.="\t\$".$tableName."->set".ucfirst($campos[$cont])."(\$_POST[\"".$campos[$cont]."\"]);\n";
		}
		$controle = "controle";
		$conteudo.="\t$$controle = new $tab"."Controle($$tableName);\n";
		$conteudo.="\t\$".$controle."->excluir($$tableName)\n";
		$conteudo.="}\n";		
		$conteudo.="?>\n";		
		return $conteudo;
	}
	
	
	//gerar html da tela de insercao
	public function gerarHtmlInsert($campos, $nomeCampo, $tipo, $tamanho, $tipoCampo){
		$campo = "<form action=$PHP_SELF METHOD=post>";
		$campo.= "\t<table>";
		for ($cont = 0 ; $cont < sizeof($campos); $cont++){
			if (!empty($tipoCampo[$cont])){
				$campo.= "\t\t<tr>\n";
				$campo.= "\t\t\t<td>\n";
					$campo.= "$nomeCampo[$cont]\n";
				$campo.= "</td>\n";
				$campo.= "\t\t\t<td>\n";
				if ($tipoCampo[$cont] == "text"){
					$campo.= $this->returnInputText($nomeCampo[$cont], $tamanho[$cont], $tipo, "");
				}else if ($tipoCampo[$cont] == "textarea"){
					$campo.= $this->returnTextArea($nomeCampo[$cont], $tamanho[$cont], "");
				}else if ($tipoCampo[$cont] == "hidden"){
					$campo.= $this->returnInputHidden($nomeCampo[$cont], "");
				}else if ($tipoCampo[$cont] == "combo"){
					$campo.= $this->returnInputCombo($nomeCampo[$cont]);
				}else{
					$campo.= $this->returnInputText($nomeCampo[$cont], $tamanho[$cont], $tipo, "");
				}
				$campo.= "\t\t\t</td>\n";
				$campo.= "\t\t</tr>\n";
			}
		}
		$campo.= "\t</table>\n";
		$campo.= "</form>\n";
		return $campo;
	}
	
	//gerar codigo html da tela de alteracao de dados. 
	public function gerarHtmlAlteracao($tableName, $campos, $nomeCampo, $tipo, $tamanho, $tipoCampo){
		$campo = "\n\n<form action=$PHP_SELF METHOD=post>";
		$campo.="\n<?\n";
		//instanciar a classe
		$campo.=" \t\$$tableName = new $tableName();\n";
		//atribuir todos os valores para a classe
		for ($cont = 0; $cont < sizeof($campos); $cont++){
			$conteudo.="\t\$".$tableName."->set".ucfirst($campos[$cont])."(\$_POST[\"".$campos[$cont]."\"]);\n";
		}
		//chamar classe de controle
		$controle.= "controle";
		$campo.="\t\$".$controle." = new $tableName"."Controle($$tableName);\n\n";
		$campo.="\t$"."rs  = \$".$controle."->exibir($$tableName)\n";
		
		$campo.="?>\n";
		
		$campo.= "<table>\n";
		for ($cont = 0 ; $cont < sizeof($campos); $cont++){
				//gerar campo html para todos os campos que foram passados e que possuam um tipo de campo definido
				if (!empty($tipoCampo[$cont])){
					$campo.= "\t<tr>\n";
					$campo.= "\t\t<td>\n";
						$campo.= "\t\t\t$nomeCampo[$cont]\n";
					$campo.= "\t\t</td>\n";
					$campo.= "\t\t<td>\n";
					$rs="rs";
					if ($tipoCampo[$cont] == "text"){		
						$campo.= $this->returnInputText($nomeCampo[$cont], $tamanho[$cont], $tipo, "<?echo mysql_result($$rs, 0, \"$nomeCampo[$cont]\"));?>");
					}else if ($tipoCampo[$cont] == "textarea"){
						$campo.= $this->returnTextArea($nomeCampo[$cont], $tamanho[$cont], "<?echo mysql_result($$rs, 0, \"$nomeCampo[$cont]\"));?>");
					}else if ($tipoCampo[$cont] == "hidden"){
						$campo.= $this->returnInputHidden($nomeCampo[$cont], "<?echo mysql_result($$rs, 0, \"$nomeCampo[$cont]\"));?>");
					}else if ($tipoCampo[$cont] == "combo"){
						$campo.= $this->returnInputCombo($nomeCampo[$cont]);
					}else{
						$campo.= $this->returnInputText($nomeCampo[$cont], $tamanho[$cont], $tipo, "<?echo mysql_result($$rs, 0, \"$nomeCampo[$cont]\"));?>");
					}
					$campo.= "\n\t\t</td>\n";
					$campo.= "\t</tr>\n";
		}
			
		}	
		$campo.= "\t</table>\n";
		$campo.= "\t</form>\n";
		return $campo;
	}

	public function returnInputText($nomecampo, $tamanho, $tipo, $valor){
		return "\t\t\t<input type=\"text\" name='$nomecampo' value='$valor' maxlength=$tamanho>";
	}

	public function returnInputCombo($nomecampo){
			return "\t\t\t<select name=$nomecampo><option value='Definir valor'></option></select>";
	}
	
	public function returnInputHidden($nomecampo, $valor){
		return "\t\t\t<input type=\"hidden\" name='$nomecampo' value='$valor' maxlength=$tamanho>";
	}
	
	public function returnTextArea($nomecampo, $tamanho, $valor){
		return "\t\t\t<textarea name='$nomecampo' rows=5 cols=30>$valor</textarea>";
	}
	
	public function gerarTelaResultado($banco, $sql, $tabela){
		$cont = "cont";
		$rs = "rs";
		$banco = "banco";
		
		$campos =  "";
		$campos .= "\$ ". "$banco->conectar();\n";
		$campos .= "\$"."$rs = \$$banco->executar($sql)\n";
		$campos .= "if (!$$rs){\n";
			$campos .= "echo mysql_error();\n";
		$campos .= "}\n";
		$campos .= "<table>\n";
		$campos .= "\t\t<tr>\n";
		$$campos .= "\for ($"."$cont=0; $cont < mysql_num_fields($$rs); $cont++){";
			$campos .= "\t\t\t<td>\n";
			$campos .= "\t\t\t\tmysql_field_name($rs, $cont);";
			$campos .= "\t\t\t</td>\n";
		$campos .= "}";
		$campos .= "\t\t\t<td>\n";
		$campos .= "for ($cont =0; $cont  < mysql_num_rows($rs); $cont++){"; 
			$campos .= "\t\t\t<tr>\n";					
			$campos .= "for ($conta =0; $conta < mysql_num_fields($rs); $conta++){" ;
				$campos .= "\t\t\t<td>\n";
				$campos .= "\t\t\t\tmysql_result($rs, $cont, mysql_field_name($rs, $conta));" ;
				$campos .= "\t\t\t</td>\n";
			$campos .= "}";
			$campos .= "\t\t\t</tr>\n";
		$campos .= "}";
		$campos .= "</table>\n";	
		return $campos; 
		}
			
	}
	

?>